package com.hliushi.proxy.example02;

import com.hliushi.proxy.example01.Internet;

import java.lang.reflect.Proxy;

/**
 * @author: hliushi
 * @date: 2023/2/14 22:15
 **/
public class _Client {

    public static void main(String[] args) {
        // 访问互联网(外网)，生成路由器代理
        Internet routerProxy = (Internet) Proxy.newProxyInstance(
                RouterProxy.class.getClassLoader(),
                RouterProxy.class.getInterfaces(),
                new BlackListFilter(new RouterProxy()));

        routerProxy.httpAccess("https://www.电影.com");
        routerProxy.httpAccess("https://www.游戏.com");
        routerProxy.httpAccess("https://www.工作.com");
        routerProxy.httpAccess("https://www.学习.com/design-patterns");

        System.out.println("\n----------------------------------------------\n");

        // 访问局域网(内网)，生成交换机代理
        Intranet switchProxy = (Intranet) Proxy.newProxyInstance(
                Switch.class.getClassLoader(),
                Switch.class.getInterfaces(),
                new BlackListFilter(new Switch()));

        switchProxy.fileAccess("\\\\.192.168.1.2\\共享\\电影\\IronHuman.mp4");
        switchProxy.fileAccess("\\\\.192.168.1.4\\工作\\需求文档.word");
        switchProxy.fileAccess("\\\\.192.168.1.6\\shared\\Java学习资料.zip");
        switchProxy.fileAccess("\\\\.192.168.2.112\\shared\\游戏\\Hero.exe");
    }
}
